/******************************************************************************************
 * Export Class
 ******************************************************************************************/

export default class Gen {

    /**
     * 生成纯字符随机字符串
     * 
     * @param {Int} length 生成的字符串长度
     */
    static char(length = 4) {
        return Gen._random('char', length);
    }

    /**
     * 生成纯数字随机字符串
     * 
     * @param {Int} length 生成的字符串长度
     */
    static number(length = 4) {
        return Gen._random('number', length);
    }

    /**
     * 生成混合字符串
     * 
     * @param {Int} length 生成的字符串长度
     */
    static mixed(length = 8) {
        return Gen._random('mixed', length);
    }

    /**
     * 
     * @param {String} type 类型，可选：char, number, mixed
     * @param {Int} length  生成的字符串长度
     */
    static _random(type, length) {
        let char = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
        let number = '0123456789';
        let mixed = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789';
        let source = char;
        if (type == 'number') source = number;
        if (type == 'mixed') source = mixed;
        let maxPos = source.length;
        let result = '';
        for (let i=0; i<length; i++) {
            result += source.charAt(Math.floor(Math.random() * maxPos));
        }
        return result;
    }
}
